/**
  ******************************************************************************
  * @file       pd_h_gpio.h
  * @author     Chris
  * @since      2023/10/11
  *
  * @brief      Header file of peripheral driver of GPIO.
  *
  ******************************************************************************
  */

#ifndef JXTECH_PD_H_GPIO_H
#define JXTECH_PD_H_GPIO_H

#include "stm32g4xx.h"

void PD_H_GPIO_LEDInit(void);

void PD_H_GPIO_BuzzerActiveInit(void);

void PD_H_GPIO_KeyInit(void);

void PD_H_GPIO_LDRInit(void);

void PD_H_GPIO_OLEDInit(uint8_t protocol);

void PD_H_GPIO_CountSensorInit(void);


void PD_H_GPIO_TIM3_Init(void);

void PD_H_GPIO_TIM4_Init(void);

void PD_H_GPIO_TIM15_Init(void);


void PD_H_GPIO_TIM16_Init(void);


void PD_H_GPIO_TIM8_Init(void);


void PD_H_GPIO_ADC1_Init(void);

void PD_H_GPIO_ADC2_Init(void);


void PD_H_GPIO_USART1_Init(void);


void PD_H_GPIO_WriteBit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin, FlagStatus BitVal);

uint8_t PD_H_GPIO_ReadBit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);

void PD_H_GPIO_TurnBit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);

#endif // JXTECH_PD_H_GPIO_H
